// PR c++/94326
// { dg-do compile { target c++11 } }
// { dg-options "-fcompare-debug" }

template <typename = int> struct A {
  const int &foo() { return 0; }	// { dg-warning "returning reference to temporary" }
  template <typename _Kt> void bar(_Kt) { foo(); }
};
struct B {
  A<> b;
  template <typename _Kt> auto baz(_Kt p1) -> decltype(b.bar(p1)) {
    b.bar(p1);
  }
};
struct C {};
void operator<(C, int) {
  B a;
  a.baz(C{});
}
